package es.ucm.fdi.pe.practica3.genetico3.seleccion;

import java.util.LinkedList;

import es.ucm.fdi.pe.practica3.genetico3.Individuo;

public class Seleccion {
	public final static int Ruleta = 0;
	public final static int TorneoDeterminista = 1;
	public final static int TorneoAleatorio = 2;
	public final static int Ranking = 3;
	public final static int Propio = 4;
	public final static String[] Metodos = {"Ruleta","Torneo determinista","Torneo aleatorio","Ranking","Propio"};
	
	public Individuo getIndividuo(int metodo, LinkedList<Individuo> poblacion){
		switch (metodo){
			case Ruleta:  return (new SeleccionRuleta().getIndividuo(poblacion));
			case TorneoDeterminista:  return (new SeleccionTorneoDeterminista().getIndividuo(poblacion));
			case TorneoAleatorio:  return (new SeleccionTorneoAleatorio().getIndividuo(poblacion));
			case Ranking:  return (new SeleccionRanking().getIndividuo(poblacion));
			case Propio:  return (new SeleccionPropio().getIndividuo(poblacion));
			default: return (new SeleccionRuleta().getIndividuo(poblacion));
		}
	}

	public void calculaRanking(LinkedList<Individuo> poblacion) {
		new SeleccionRanking().calculaRanking(poblacion);
	}
}
